3c9132e7ad7d302dffdfa0dd3631e0f55446aece,sketch/src/main/java/me/xiaopan/sketch/request/LoadRequest.java,LoadRequest,saveProcessedImageToDiskCache,#Bitmap#,370

Before Change


        DiskCache diskCache = getSketch().getConfiguration().getDiskCache();

        ReentrantLock editLock = diskCache.getEditLock(getProcessedImageDiskCacheKey());
        if (editLock != null) {
            editLock.lock();
        }

        DiskCache.Entry diskCacheEntry = diskCache.get(getProcessedImageDiskCacheKey());
        if (diskCacheEntry != null) {
            diskCacheEntry.delete();
        }

        DiskCache.Editor diskCacheEditor = diskCache.edit(getProcessedImageDiskCacheKey());
        if (diskCacheEditor != null) {
            BufferedOutputStream outputStream = null;
            try {
                outputStream = new BufferedOutputStream(diskCacheEditor.newOutputStream(), 8 * 1024);
                bitmap.compress(SketchUtils.bitmapConfigToCompressFormat(bitmap.getConfig()), 100, outputStream);
                diskCacheEditor.commit();
            } catch (DiskLruCache.EditorChangedException e) {
                e.printStackTrace();
                diskCacheEditor.abort();
            } catch (IOException e) {
                e.printStackTrace();
                diskCacheEditor.abort();
            } catch (DiskLruCache.ClosedException e) {
                e.printStackTrace();
                diskCacheEditor.abort();
            } catch (DiskLruCache.FileNotExistException e) {
                e.printStackTrace();
                diskCacheEditor.abort();
            } finally {
                SketchUtils.close(outputStream);
            }
        }

        if (editLock != null) {
            editLock.unlock();
        }
    }

After Change


     * �存bitmap到�盘缓存
     */
    private void saveProcessedImageToDiskCache(Bitmap bitmap) {
        LockPool lockPool = getSketch().getConfiguration().getLockPool();
        ReentrantLock editLock = lockPool.getDiskCacheEditLock(getProcessedImageDiskCacheKey());
        editLock.lock();

        DiskCache diskCache = getSketch().getConfiguration().getDiskCache();
        DiskCache.Entry diskCacheEntry = diskCache.get(getProcessedImageDiskCacheKey());

        if (diskCacheEntry != null) {
            diskCacheEntry.delete();
        }

        DiskCache.Editor diskCacheEditor = diskCache.edit(getProcessedImageDiskCacheKey());
        if (diskCacheEditor != null) {
            BufferedOutputStream outputStream = null;
            try {
                outputStream = new BufferedOutputStream(diskCacheEditor.newOutputStream(), 8 * 1024);
                bitmap.compress(SketchUtils.bitmapConfigToCompressFormat(bitmap.getConfig()), 100, outputStream);
                diskCacheEditor.commit();
            } catch (DiskLruCache.EditorChangedException e) {
                e.printStackTrace();
                diskCacheEditor.abort();
            } catch (IOException e) {
                e.printStackTrace();
                diskCacheEditor.abort();
            } catch (DiskLruCache.ClosedException e) {
                e.printStackTrace();
                diskCacheEditor.abort();
            } catch (DiskLruCache.FileNotExistException e) {
                e.printStackTrace();
                diskCacheEditor.abort();
            } finally {
                SketchUtils.close(outputStream);
            }
        }

        editLock.unlock();
    }

    protected void loadCompleted() {